package site.wlwsjsx.iot_backend.service;

import site.wlwsjsx.iot_backend.dto.EnvHalfHourAggDTO;
import site.wlwsjsx.iot_backend.dto.EnvUploadDTO;
import site.wlwsjsx.iot_backend.dto.LabDetailDTO;

import java.time.LocalDateTime;
import java.util.List;

public interface EnvInfoService {
    /**
     * 保存上传的环境数据
     *
     * @param envUploadDTO 上传的数据DTO
     */
    void saveEnvData(EnvUploadDTO envUploadDTO);

    /**
     * 获取实验室的详细信息
     *
     * @param labId 实验室ID
     * @return 实验室详细信息
     */
    LabDetailDTO getLabDetail(Integer labId);

    /**
     * 获取指定工作站在指定时间范围内的半小时环境聚合数据
     *
     * @param envId     工作站ID，用于标识具体的工作站
     * @param startTime 开始时间，查询的起始时间点
     * @param endTime   结束时间，查询的结束时间点
     * @return 返回一个EnvHalfHourAggDTO列表，包含每个半小时时间段的环境聚合数据
     */
    public List<EnvHalfHourAggDTO> getHalfHourEnvAgg(
            Integer envId,  // 工作站编码参数
            LocalDateTime startTime, // 开始时间参数
            LocalDateTime endTime    // 结束时间参数
    );

    List<EnvHalfHourAggDTO> getEnvHistoryWithInterval(Integer labId, Integer count, Integer interval);
}